package com.ruoyi.backend.mapper;

import com.ruoyi.backend.dto.UavInfoUpdateDTO;
import com.ruoyi.backend.dto.UavUploadDTO;
import com.ruoyi.backend.pojo.Uav;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Mapper
public interface UavMapper {

    List<Uav> findByUavIdPrefix(String prefix);

    void upload(UavUploadDTO uavUploadDTO);

    List<Uav> search(@Param("mineId") String mineId,
                     @Param("uavName") String uavName,
                     @Param("startTime") LocalDate startTime,
                     @Param("endTime") LocalDate endTime,
                     @Param("dataType") String dataType,
                     @Param("saveType") String saveType);

    void delete(@Param("uavId") String uavId, @Param("uavTime") LocalDate uavTime);

    void update(UavInfoUpdateDTO uavInfoUpfateDTO);

    Integer getCountUavId(String uavId);

    Uav findById(@Param("uavId") String uavId, @Param("uavTime") LocalDate uavTime);

    Uav searchUavData(String mineId, LocalDate dataTime, String spatialCoverage);
}
